class Watcher {
  constructor(vm,key,cb) {
    this.vm = vm
    this.key = key // data中的属性名
    // 回调函数，用来更新视图
    this.cb = cb
    // 把该watcher对象记录到Dep静态属性target中，
    Dep.target = this
    // 触发get方法，在get方法中调用addSub

    this.oldValue = vm[key]
    Dep.target = null
  }
  // 当数据发生变化时，更新视图
  update(){
    let newValue = this.vm[this.key]
    if(this.oldValue === newValue ){
      return
    }
    this.cb(newValue)
  }

}